В общем как я и подозревал не заработало из-за бездумья
порт scgi я изменил и в lighttpd и в rtorrent, но оставил прежним в настройках rutorrent. ни дебаг, ни логи в этом случае не помогли бы, так как никаких ошибок кроме указанной ошибки в php скрипте небыло. В процессе чтения форумов снизошло озарение и понимание что плохо быть дурачком
Пришлось все переставить заново, и у меня получилась инструкция которой я и хочу поделиться, может кому пригодится. От меня тут очень не много, в основном это компиляция существующих инструкций. Большое спасибо авторам этих инструкций, за потраченное время. Итак... (мои замечания отмечены курсивом)
I. УСТАНОВКА LIGHTTPD
Исночник: http://wl500g.info/showpost.php?p=97393&postcount=166
1) Первая команда, конечно же,
ipkg install lighttpd
установка веб-сервера, полагаю, Вы ее уже выполнили, и чего-то Вам
таки проставилось. Далее -
ipkg install php-fcgi
установка php-fcgi.
2) Идем редактировать конфигурационные файлы. Лежат они в /opt/etc/lighttpd/
Открываем /opt/etc/lighttpd/lighttpd.conf
делаем следующее:
a) секция server.modules, откомментируем (убираем # в начале строчки) позиции
"mod_access"
"mod_auth"
"mod_cgi"
"mod_scgi"
"mod_accesslog"
Если к/л строчек нет - добавить.
б) В server.document-root указываем, где у нас корень www будет. Так:
server.document-root = "/opt/share/www/"
(если директории нет - создать)
в)
server.errorlog = "/opt/var/log/lighttpd/error.log"
accesslog.filename = "/opt/share/www/log/access.log"
Тут будут ошибки писаться. Если соотв. директорий нет - создать.
г)
строку
# server.event-handler = "freebsd-kqueue" # needed on OS X
заменяем на
server.event-handler = "poll" # needed on OS X
(в оригинальной инструкции этого пункта нет. при старте lighttpd выдавал ошибку fdevent_init failed, это изменение пофиксило ошибку)
д) можем изменить порт поумолчанию
server.port = 8082
е) секцию scgi.server оформляем следующим образом:
scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"host" => "127.0.0.1",
"port" => 8888,
"check-local" => "disable"
)
)
)
Тут я заменил порт поумолчанию на 8888 (был 5000).
ж) Открываем /opt/etc/lighttpd/conf.d/10-php-fcgi.conf и
расскомментируем там все.
3) Все, готово. Неплохо бы проверить, как это работает. Для этого пишем
/opt/etc/init.d/S80lighttpd start
и лезем браузером по адресу
http://DataStation:8082
Если показало что-то вразумительное - сервер таки запустился, ура.
Если нет, начинаем пляски с бубном вокруг файлов, пути к которым
описаны выше в пункте 2) в).
II. УСТАНОВКА RTORRENT
Источник: http://wl500g.info/showpost.php?p=97629&postcount=177
0) Ставим rtorrent
ipkg install rtorrent, создать
его рабочие директории, так
mkdir -p /opt/share/torrent/dl
mkdir -p /opt/share/torrent/work
mkdir -p /opt/share/torrent/session
1) Сказать
ipkg install adduser
это доставит пакет adduser (если он еще не стоит), который позволяет
добавлять в систему пользователей с несколько большим комфортом,
нежели чем редактирование passwd руками. Если уже есть - ipkg так и
скажет.
2)
mkdir -p /opt/home/p2p
сделать домашний каталог пользователю p2p
3)
adduser --home /opt/home/p2p p2p
добавить пользователя p2p. Спросит пароль - вводите на Ваше
усмотрение, он Вам в дальнейшем не понадобится.
4)
chown p2p /opt/home/p2p
chown p2p /opt/share/torrent/dl
chown p2p /opt/share/torrent/work
chown p2p /opt/share/torrent/session
chmod a+r /opt/etc/rtorrent.conf
chmod a+x /opt/bin/rtorrent
передать во владение пользователю p2p его home каталог и рабочие
директории rtorrent, разрешить всем читать файл конфигурации rtorrent,
разрешить всем выполнять rtorrent. Последнее необходимо, если Вы таки
прислушались к совету из стартового постинга, и поменяли бинарники
rtorrent на мои.
5) Файл /opt/etc/init.d/S99rtorrent оформляем следующим образом:
#!/bin/sh
user="p2p"
config="/opt/etc/rtorrent.conf"
options="-n -o import=/opt/etc/rtorrent.conf"
base="/opt/share/torrent"
srnname="rtorrent"
logfile="/opt/var/log/rtorrentInit.log"
PATH=/opt/bin:/opt/sbin:/usr/bin:/sbin:/bin:/usr/sbin
DESC="rtorrent"
NAME=rtorrent
DAEMON=$NAME
SCRIPTNAME=/etc/init.d/$NAME
# Do not proceed unless some apps are available.
test -x /opt/bin/screen || ( echo "screen not found." | tee -a "$logfile" >&2 ; exit 2 )
test -x /opt/bin/su -o -x /bin/su || ( echo "su not found." | tee -a "$logfile" >&2 ; exit 2 )
checkcnfg() {
# exists=0
# for i in `echo "$PATH" | tr ':' '\n'` ; do
# if [ -f $i/$NAME ] ; then
exists=1
# break
# fi
# done
if [ $exists -eq 0 ] ; then
echo "cannot find rtorrent binary in PATH $PATH" | tee -a "$logfile" >&2
exit 3
fi
if ! [ -r "${config}" ] ; then
echo "cannot find readable config ${config}. check that it is there and permissions are appropriate" | tee -a "$logfile" >&2
exit 3
fi
session=`getsession "$config"`
if ! [ -d "${session}" ] ; then
echo "cannot find readable session directory ${session} from config ${config}. check permissions" | tee -a "$logfile" >&2
exit 3
fi
}
d_start() {
[ -d "${base}" ] && cd "${base}"
stty stop undef && stty start undef
su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "screen -dm -S ${srnname} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
# this works for the screen command, but starting rtorrent below adopts screen session gid
# even if it is not the screen session we started (e.g. running under an undesirable gid
#su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "sg \"$group\" -c \"screen -fn -dm -S ${srnname} 2>&1 1>/dev/null\"" ${user} | tee -a "$logfile" >&2
su -c "screen -S "${srnname}" -X screen rtorrent ${options} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
}
d_stop() {
session=`getsession "$config"`
if ! [ -s ${session}/rtorrent.lock ] ; then
return
fi
pid=`cat ${session}/rtorrent.lock | awk -F: '{print($2)}' | sed "s/[^0-9]//g"`
if ps -A | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn't belong to another process
kill -s INT ${pid}
fi
}
getsession() {
session=`awk '/^[[:space:]]*session[[:space:]]*=[[:space:]]*/{print($3)}' "$config"`
echo $session
}
checkcnfg
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
пришлось закоментить в самом начале скрипта проверку того что rtorrent есть в пути, так как она не проходила
Замечу, что данный скрипт предполагает, что пакеты procps, grep, gawk
и screen установлены в системе. Если это не так, не забудьте сказать
ipkg install procps
ipkg install grep
ipkg install screen
ipkg install gawk
Так же не забудьте, что переводы каретки должны быть в дОлжном виде.
6) В файл /root/.profile добавляем строчки для нормальной
работы в консоли rtorrent:
alias rt='su -c "screen -r" p2p'
chmod a+rw `tty`
stty start undef
stty stop undef
7) Копируем данный файл пользователю p2p
cp /root/.profile /opt/home/p2p/.profile
chown p2p /opt/home/p2p/.profile
8) Проверяем результаты. Для начала убедимся, что пользователь
завелся, и rtorrent под ним работает. Так:
su p2p
/opt/bin/rtorrent -n -o import=/opt/etc/rtorrent.conf
Если консоль показалась - ^Q.
завершить telnet сессию (или ssh, если его используете). Сие
необходимо, чтобы написанное в файле .profile вступило в действие.
9) Залогиниться снова. На всякий случай - mc не запускать!
Последовательно сказать
/opt/etc/init.d/S99rtorrent start
rt
Если консоль показалась - сказать ^A ^D.
Все, Вы отсоединились от консоли, но rtorrent продолжает работать.
11) Теперь можно перегрузить nas и убедиться, что все заводится и
автоматом тоже.
III. КОМПИЛЯЦИЯ XMLRPC-C
так как в данный момент rtorrent не работает пекетом xmlrpc-c версии 1.11.00-3 то нужно собрать его ( xmlrpc-c) из исходников.
Источник: http://www.synology.forum/index.php?sho...post&p=3456 Спасибо ser78
1. Установка средств для разработки:
ipkg install gcc binutils optware-devel
появится вот такая ошибка, игнорируем ее:
<<Configuring zlib
An error ocurred, return value: 1.
Collected errors:
Cannot find package crosstool-native.
Check the spelling or perhaps run 'ipkg update'
ERROR: The following packages conflict with wget-ssl:>>
после нескольких экспериментов некторые девелоперские пакеты оказались ставится из-за циклического конфликта между wget и wget-ssl. Пришлось сделать хард ресет. На чистой системе все прошло как описывалось
2. Компиляция:
Для этого подойдет любой каталог.
Сначала качаем исходники:
svn checkout http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable xmlrpc-c
Можно все делать из командной строки, но я использовал скрипт (т.к. с первого раза вряд ли все скомпилится без ошибок) (у меня 2 раза получилось с первого раза
):
#! /bin/sh
cd xmlrpc-c
./configure --disable-curl-client --prefix=/opt
make ARCH=arm
make install
--prefix=/opt - означает что файлы после make install будут
проинсталлированы в дирректорию /opt, но сначала для тестов поставьте
какой нибудь другой каталог (например /tmp/xmlrpc), и смотрите если в
нем появились файлы(точнее каталоги bin,include,lib) значит компиляция
прошла успешно, и тогда можно менять на /opt
--disable-curl-client - curl клиент пришлось отключить, т.к. с ним у
меня скомпиливровать так и не получилось.
ARCH=arm тут указываем свою архитектуру (она указана в имени файла bootstrap, например если syno-e500-bootstrap_1.2-7_powerpc.xsh значит архитектура powerpc (за уточнение спасибо ser78 )
если вы таки использовали временную папку для первой компиляции и компиляция прошла успешно, то после замены на /opt все пройдет быстрее как компилироваться ничего не будет, а просто скопируется все в /opt
IV. УСТАНОВКА RUTORRENT (WEBМОРДА)
Источник: http://wl500g.info/showpost.php?p=95644&postcount=1
1) Скачать архив ruTorrent отсуда и развернуть его содержимое в корень
веб-сервера (/opt/share/www). Желательно проделать эту операцию из под пользователя,
под которым работает веб-сервер, чтобы потом не разбираться с правами
файлов/директорий.
2) Нужно внести необходимые изменения в
настройку rtorrent. Добавить в rtorrent.conf (или .rtorrent.rc) строчку
scgi_port = 127.0.0.1:8888
порт указываем такой-же как и в настройках lighttpd в разделе scgi.server
3) в /opt/share/www/rtorrent/config.php проверяем что порт такой-же
как мы установили выше:
$scgi_port = 8888;
Как раз из-за этого у меня и неработало
4) Теперь можно перезапустить rtorrent
/opt/etc/init.d/S99rtorrent start
проверить что он поднялся
rt
Если консоль показалась - сказать ^A ^D.
В браузере набираем http://datastation:порт_веб_сервера/rtorrent